/** Head JS The only script in your Copyright Tero Piirainen (tipiirai) License MIT / http://bit.ly/mit-license Version 0.96 http://headjs.com */ (function (a) { function z() { d || (d = !0, s(e, function (a) { p(a) })) } function y(c, d) { var e = a.createElement("script"); e.type = "text/" + (c.type || "javascript"), e.src = c.src || c, e.async = !1, e.onreadystatechange = e.onload = function () { var a = e.readyState; !d.done && (!a || /loaded|complete/.test(a)) && (d.done = !0, d()) }, (a.body || b).appendChild(e) } function x(a, b) { if (a.state == o) return b && b(); if (a.state == n) return k.ready(a.name, b); if (a.state == m) return a.onpreload.push(function () { x(a, b) }); a.state = n, y(a.url, function () { a.state = o, b && b(), s(g[a.name], function (a) { p(a) }), u() && d && s(g.ALL, function (a) { p(a) }) }) } function w(a, b) { a.state === undefined && (a.state = m, a.onpreload = [], y({ src: a.url, type: "cache" }, function () { v(a) })) } function v(a) { a.state = l, s(a.onpreload, function (a) { a.call() }) } function u(a) { a = a || h; var b; for (var c in a) { if (a.hasOwnProperty(c) && a[c].state != o) return !1; b = !0 } return b } function t(a) { return Object.prototype.toString.call(a) == "[object Function]" } function s(a, b) { if (!!a) { typeof a == "object" && (a = [].slice.call(a)); for (var c = 0; c < a.length; c++) b.call(a, a[c], c) } } function r(a) { var b; if (typeof a == "object") for (var c in a) a[c] && (b = { name: c, url: a[c] }); else b = { name: q(a), url: a }; var d = h[b.name]; if (d && d.url === b.url) return d; h[b.name] = b; return b } function q(a) { var b = a.split("/"), c = b[b.length - 1], d = c.indexOf("?"); return d != -1 ? c.substring(0, d) : c } function p(a) { a._done || (a(), a._done = 1) } var b = a.documentElement, c, d, e = [], f = [], g = {}, h = {}, i = a.createElement("script").async === !0 || "MozAppearance" in a.documentElement.style || window.opera, j = window.head_conf && head_conf.head || "head", k = window[j] = window[j] || function () { k.ready.apply(null, arguments) }, l = 1, m = 2, n = 3, o = 4; i ? k.js = function () { var a = arguments, b = a[a.length - 1], c = {}; t(b) || (b = null), s(a, function (d, e) { d != b && (d = r(d), c[d.name] = d, x(d, b && e == a.length - 2 ? function () { u(c) && p(b) } : null)) }); return k } : k.js = function () { var a = arguments, b = [].slice.call(a, 1), d = b[0]; if (!c) { f.push(function () { k.js.apply(null, a) }); return k } d ? (s(b, function (a) { t(a) || w(r(a)) }), x(r(a[0]), t(d) ? d : function () { k.js.apply(null, b) })) : x(r(a[0])); return k }, k.ready = function (b, c) { if (b == a) { d ? p(c) : e.push(c); return k } t(b) && (c = b, b = "ALL"); if (typeof b != "string" || !t(c)) return k; var f = h[b]; if (f && f.state == o || b == "ALL" && u() && d) { p(c); return k } var i = g[b]; i ? i.push(c) : i = g[b] = [c]; return k }, k.ready(a, function () { u() && s(g.ALL, function (a) { p(a) }), k.feature && k.feature("domloaded", !0) }); if (window.addEventListener) a.addEventListener("DOMContentLoaded", z, !1), window.addEventListener("load", z, !1); else if (window.attachEvent) { a.attachEvent("onreadystatechange", function () { a.readyState === "complete" && z() }); var A = 1; try { A = window.frameElement } catch (B) { } !A && b.doScroll && function () { try { b.doScroll("left"), z() } catch (a) { setTimeout(arguments.callee, 1); return } } (), window.attachEvent("onload", z) } !a.readyState && a.addEventListener && (a.readyState = "loading", a.addEventListener("DOMContentLoaded", handler = function () { a.removeEventListener("DOMContentLoaded", handler, !1), a.readyState = "complete" }, !1)), setTimeout(function () { c = !0, s(f, function (a) { a() }) }, 300) })(document)